CC=gcc
SRC_PATH=$(PWD)/src

INDEX=$(SRC_PATH)/indexador
END=$(SRC_PATH)/libend
IO=$(SRC_PATH)/libendio

PARSER=$(PWD)/head

IPATH=$(PWD)
LPATH=$(PWD)

IPATH_LIBXML=/usr/include/libxml2

IQUOTE=$(PWD)

CHARSET=ISO8859-15
CFLAGS=-g -I $(IPATH) -I $(END) -I $(IO) -L $(LPATH) -L $(PWD) -lgdsl -finput-charset=$(CHARSET) -fwide-exec-charset=$(CHARSET) -iquote $(IQUOTE)

pwd:
	@echo $(PWD)

test: pwd $(INDEX)/teste-bst.c
	@echo "teste"
	@$(CC) -o teste-bst teste-bst.c $(CFLAGS)

leitor: pwd $(INDEX)/leitor.l
	 @echo "leitor"
	 @flex -o $(INDEX)/leitor.c -i $(INDEX)/leitor.l 

teste_leitor: leitor $(INDEX)/teste_leitor.c
	@echo "teste_leitor"
	@$(CC) -o teste_leitor $(INDEX)/teste_leitor.c $(INDEX)/leitor.c -lfl -lgdsl

leitor-parser: $(INDEX)/leitor-parser.l
	@echo "leitor-parser"
	@flex -o $(INDEX)/leitor-parser.c -i $(INDEX)/leitor-parser.l 

teste_leitor-parser: leitor-parser $(INDEX)/teste_leitor.c
	@echo "teste_leitor_parser"
	@$(CC) -o teste_leitor $(INDEX)/teste_leitor.c $(INDEX)/leitor-parser.c -lfl -lgdsl -I .

end: $(END)/end.c $(END)/end.h
	@echo "libend"
	@$(CC) -o libend.so $(END)/end.c -I $(END) -I $(IO) -lgdsl -shared -g

#xml: $(IO)/endxml.h $(IO)/endxml.c
#	@echo "xml"
#	@$(CC) -o $(IO)/endxml.o -c $(IO)/endxml.c -I $(IO) -I $(IPATH_LIBXML) -I $(END) -g

xml: io

io: $(IO)/io.c $(IO)/io.h $(IO)/endxml.c
	@echo "libio"
	@$(CC) -o libendio.so $(IO)/io.c $(IO)/endxml.c -I $(END) -I $(IO) -I $(IPATH_LIBXML) -shared -g -lxml2

indexador: pwd $(INDEX)/indexador_end.c leitor end io
	@echo "indexador"
	@$(CC) -o end-indexador $(CFLAGS) $(INDEX)/indexador_end.c $(INDEX)/leitor.c -I $(IPATH_LIBXML) -lfl -lend  -lendio

parser: pwd $(PARSER)/parser.y
		@echo "parser"
		@export LIB=-D_PARSER
		$(MAKE) -C $(PARSER)

indexador-parser: pwd $(INDEX)/indexador_end.c parser end io
		@echo "indexador-parser"
		@$(CC) -o index $(CFLAGS) $(INDEX)/indexador_end.c $(PARSER)/parser.tab.c -I $(IPATH_LIBXML) -lfl -lend  -lendio -lpq -D_PARSER

debug: $(INDEX)/indexador_end.c leitor end io
	@echo d ebug
	@$(CC) -o end-indexador $(CFLAGS) $(INDEX)/indexador_end.c $(INDEX)/leitor.c  -lfl -lend  -lendio  -DDEBUG

teste_xml: pwd indexador $(IO)/testxml.c $(IO)/endxml.h
		@echo teste_xml
		@$(CC) -o xml $(CFLAGS) $(IO)/testxml.c -I $(IPATH_LIBXML) -I $(IO) -I $(END) -lxml2 -lend -lendio

cleanall:
		@rm libend.so libendio.so xml end-indexador
cleanxml:
		@rm libend.so libendio.so xml
cleanindexador:
		@rm libend.so libendio.so end-indexador
